/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.distrimas.senta.dominio.compras.ordencompra;

import com.distrimas.senta.dominio.contabilidad.nomina.EmpleadoDAO;
import com.distrimas.senta.servicios.conexion.Conexion;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Date;

/**
 *
 * @author Administrador
 */
public class OrdenCompraDAO {
    private static OrdenCompraDAO dao;
    public static OrdenCompraDAO getOrdenCompraDAO(){
        if(getDao()==null){
            setDao(new OrdenCompraDAO());
        }
        return getDao();
    }

    public OrdenCompraDTO consultarOrdenCompra(String codigo){
        OrdenCompraDTO resultado=new OrdenCompraDTO();
        EmpleadoDAO responsable = EmpleadoDAO.getEmpleadoDAO();

        Connection cone = null;
        try {
            cone=Conexion.getConnection();
            PreparedStatement p =cone.prepareStatement(OrdenCompraDAOHelper.consultarOdenCompra());
            p.setString(1, codigo);
            ResultSet r= p.executeQuery();
            while(r.next()){
                resultado.setCodigo(r.getString(1));
                resultado.setEstado(r.getString(2));
                resultado.setCalificacion(Float.parseFloat(r.getString(3)));
                resultado.setResponsable(responsable.consultarEmpleado(r.getString(4)));
                resultado.setFecha(r.getDate(5));
            }
        } catch (Exception e) {
        }finally{
            try{
              Conexion.returnConnection(cone);
            }catch(Exception e){}
        }
        return resultado;
    }

    public boolean ingresarOrdenCompra(OrdenCompraDTO ordenCompra)throws NullPointerException{
        boolean resultado=true;
        Connection cone=null;
        try {
            cone=Conexion.getConnection();
            PreparedStatement p = cone.prepareStatement(OrdenCompraDAOHelper.ingresarOrdenCompra());
            p.setString(1, ordenCompra.getCodigo());
            p.setString(2, ordenCompra.getEstado());
            p.setFloat(3, ordenCompra.getCalificacion());
            p.setString(4, ordenCompra.getResponsable().getId());
            p.setDate(5, ordenCompra.getFecha());
            p.execute();
        } catch (Exception e) {
            e.printStackTrace();
             resultado = false;
        }finally{
            try {
                Conexion.returnConnection(cone);
            } catch (Exception e) {
            }
        }
        return resultado;
    }

    /**
     * @return the dao
     */
    public static OrdenCompraDAO getDao() {
        return dao;
    }

    /**
     * @param aDao the dao to set
     */
    public static void setDao(OrdenCompraDAO aDao) {
        dao = aDao;
    }
}

